﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using BLL;
using System.Xml.Linq;

public partial class admin_ConfigProduct_DetailColour : System.Web.UI.Page
{
  ColourBLL colourData = new ColourBLL();
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      Session["url_back_admin"] = Request.RawUrl;

      LoadTitle();
      LoadMode();
      if (Request.QueryString["Id"] != null)
        Filldata();
    }
  }
  private void Filldata()
  {
    int id = Convert.ToInt32(Request.QueryString["Id"]);
    Colour colour = colourData.GetById(id);
    txtName.Text = colour.Name;
    txtName_En.Text = colour.Name_En;
    dropMode.SelectedValue = colour.Mode.ToString();
  }

  private void LoadMode()
  {
      dropMode.Items.Clear();
      ShowChild(0, " - - ");
  }
  ProdCateBLL categoryData = new ProdCateBLL();
  private void ShowChild(int parentId, string space)
  {
      List<ProdCate> listDataSource = categoryData.GetByParent(parentId);

      foreach (ProdCate item in listDataSource)
      {
          ListItem obj = new ListItem(space + item.Name, item.Id.ToString());
          dropMode.Items.Add(obj);

          ShowChild(item.Id, space + "- - - ");
      }
  }
  //private void LoadMode()
  //{
  //  dropMode.Items.Clear();
  //  XElement xElement = XElement.Load(MyConfig.serverPath + "XML/Config.xml");
  //  var xPosition = xElement.Descendants("ProductMode").Descendants("Mode");
  //  foreach (XElement item in xPosition)
  //  {
  //    dropMode.Items.Add(new ListItem(item.Element("Name").Value, item.Attribute("Id").Value));
  //  }
  //  dropMode.Items.Insert(0, new ListItem("- Chọn nhóm sản phẩm -", "-1"));
  //}
  private void LoadTitle()
  {
    if (Request.QueryString["Id"] != null)
    {
      h3Title.InnerText = "Chỉnh sửa Màu sản phẩm";
    }
  }
  private bool isValidate()
  {
    if (!fileUpload.HasFile && Request.QueryString["Id"] == null)
    {
      Myfunction.ThongBao(lbThongBao, "Chọn ảnh màu");
      return false;
    }
    if (dropMode.SelectedIndex <= 0)
    {
      Myfunction.ThongBao(lbThongBao, "Chọn nhóm sản phẩm");
      return false;
    }
    return true;
  }
  private void ResetForm()
  {
    txtName.Text = "";
    txtName_En.Text = "";
  }
  private void Add()
  {
    Colour colour = new Colour();

    colour.Name = txtName.Text;
    colour.Name_En = txtName_En.Text;
    colour.Mode = Convert.ToInt32(dropMode.SelectedValue);

    if (fileUpload.HasFile)
    {
      colour.Image = Myfunction.CopyFile(fileUpload.PostedFile, "Images/Colour");
    }
    colourData.Add(colour);
    Myfunction.ThongBao(lbThongBao, "Màu sắc đã được cập nhật");
  }
  private void Update()
  {
    int id = Convert.ToInt32(Request.QueryString["Id"]);
    Colour colour = colourData.GetById(id);

    colour.Name = txtName.Text;
    colour.Name_En = txtName_En.Text;
    colour.Mode = Convert.ToInt32(dropMode.SelectedValue);
    if (fileUpload.HasFile)
    {
      if (colour.Image == "" || colour.Image == null)
        colour.Image = Myfunction.CopyFile(fileUpload.PostedFile, "Images/Colour");
      else
        colour.Image = Myfunction.UpdateFile(fileUpload.PostedFile, "Images/Colour", colour.Image);
    }
    colourData.Update(colour);

    Myfunction.ThongBao(lbThongBao, "Màu sắc đã được cập nhật");
  }
  protected void btnOk_Click(object sender, EventArgs e)
  {
    if ((int)Session["Role"] != 1)
    {
      Myfunction.ThongBao(lbThongBao, "Bạn không có quyền thực hiện thao tác này ! ");
      return;
    }
    try
    {
      lbThongBao.Text = "";
      if (isValidate())
      {
        if (Request.QueryString["Id"] == null)
        {
          Add();
          ResetForm();
        }                
        else
          Update();
      }
    }
    catch (Exception ex)
    {
      Myfunction.ThongBao(lbThongBao, ex.Message);
    }
  }
}